const cloud = require('wx-server-sdk');
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
});

exports.main = async (event) => {
  try {
    const db = cloud.database();
    const _ = db.command;
    const {
      page, pageSize, userName, activeName
    } = event;
    // 构建动态查询条件--存储搜索条件
    const queryCondition = {};

    // 名称模糊搜索（不区分大小写）
    if (userName && userName.trim()) {
      // 1. 创建正则表达式对象
      const nameRegExp = db.RegExp({
        regexp: userName, 
        options: 'i' // 不区分大小写
      });
    
      // 2. 设置复合查询条件
      queryCondition.$or = [
        { nickName: nameRegExp },
        { real_name: nameRegExp }
      ];
    }

    // 地点模糊搜索
    if (activeName && activeName.trim()) {
      // active_name是数据表中的字段
      queryCondition.active_name = db.RegExp({
        regexp: activeName,
        options: 'i'
      });
    }

    // 创建基础查询
    const baseQuery = db.collection('active_user')
      .where(queryCondition)
      .field({
        _id: true,
        active_name: true,
        active_id: true,
        nickName: true,
        real_name: true,
        isRevoke: true,
        deleteAt: true,
        isDeleted: true,
      });

    // 并行获取总数和数据（保持高性能）
    const [countResult, res] = await Promise.all([
      baseQuery.count(),
      baseQuery.skip((page - 1) * pageSize)
      .limit(pageSize)
      .get()
    ]);
    return {
      code: 200,
      data: res.data,
      total: countResult.total,
      message: 'success'
    };

  } catch (error) {
    return {
      code: 500,
      message: `请求失败: ${error.errMsg || '服务器异常'}`,
      error: error.message
    };
  }
};